// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "Character/BaseCharacter.h"
#include "AuraCharacter.generated.h"


/**
 * Aura英雄角色类
 */
UCLASS()
class AURA_API AAuraCharacter : public ABaseCharacter
{
	GENERATED_BODY()

public:

	AAuraCharacter();

	// ----------------------------------------------------------------------------------------------------------------
	//	ICombatInterface战斗接口实现
	// ----------------------------------------------------------------------------------------------------------------

	/** 从玩家状态获取等级 */
	virtual int32 GetLevel() override;

protected:

	virtual void BeginPlay() override;

	/** 角色初始主动技能 */
	UPROPERTY(EditAnywhere, Category="AAuraCharacter")
	TArray<TSubclassOf<UGameplayAbility>> StartUpAbilityClasses;

	/** 角色初始被动技能 */
	UPROPERTY(EditAnywhere, Category="AAuraCharacter")
	TArray<TSubclassOf<UGameplayAbility>> StartUpPassiveAbilityClasses;
	
private:

	/** 初始化AbilityActor相关信息 */
	virtual void InitAbilityActorInfo() override;

	/* 服务器初始化ASC */
	virtual void PossessedBy(AController* NewController) override;

	/** 客户端初始化ASC */
	virtual void OnRep_PlayerState() override;

	/** 初始化角色能力 */
	void InitCharacterAbilities();
};
